/** 正则表达式集合 */
/**
 * 所有正则表达式都可以根据项目的需求就行修改，但注释必须更新
 */
const regObj = {
  /** URL 相关正则 */
  // 匹配URL
  regexURL: /((https?|ftp)?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi,
  // 匹配 http 和 https
  regexURLHt: /(https?:\/\/)(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi,


  /** 个人信息相关正则 */
  // 匹配中国身份证
  regexCHINAIDCARD: /^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}((19\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d{2}(0[13578]|1[02])31)|(19\d{2}02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))\d{3}(\d|X|x)?$/gi,
  // 手机号校验 (不含卫星电话这些,只是罗列的常见的手机范围,也考虑了区域和长途前缀)
  regexMobileNumber: /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/gi,
  // 邮箱
  regexEmail: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9_]+\.)+[a-zA-Z]{2,}))$/gi,
  // QQ 号
  regexQQNumber: /^[1-9]\d{5,10}$/gi,
  // WX 号
  regexWeChatNumber: /^[A-Za-z][\w-]{5,19}$/gi,
  // 用户名 | 密码 必须含有大小写字母,数字及特殊符号,长度8~24
  regexEnhancePassword: /^(?!\s)((?=.*[a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_]).\S{8,24})$/g,
  // 用户名 | 密码 英文+数字,必须字母开头,允许下划线,长度八到十六
  regexNormalUsername: /^[a-zA-Z]\w{7,15}$/gi,
  // 用户名 | 密码 英文+数字,必须字母开头,允许下划线,长度八到十六 许中文四到六个字符
  regexE1: /^[\u4e00-\u9fa5]{4,6}$|^[a-zA-Z]\w{7,15}$/gi,
  // 车牌号正则
  regexCarNo: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/,
  // 中文姓名正则
  regexUserName: /^([\u4e00-\u9fa5]{2,20}|([a-zA-Z]+\s?){2,20})$/,


  /** 内容相关 */
  // 匹配正整数
  regexInteger: /^\d+$/gi,
  //负整数正则
  negPattern: /^-\d+$/,
  // 范围性的整数, 0-100
  regexRangeInteger: /^\d$|^[1-9]\d$|^100$/gi,
  // 匹配小数
  regexFloat: /^\d+\.\d+$/gi,
  // 0~100的任意整数和浮点数
  regexRangeIntFloat: /^(\d{0,2}(\.\d+)?|100(\.0+)?)$/gi,
  // 校验中文
  regexCHINASTR: /^[\\u4e00-\\u9fa5]{0,}$/gi,
  // 过滤XSS和sql
  regexSQLXSS: /[%--`~!@#$^&*()=|{}':;',\\[\\].<>\/?~！@#￥……&*（）——|{}【】‘；：”“'。，、？]/,
};

export default regObj;


